﻿#pragma once
#include <Kokkos_Core.hpp>


template<typename T>
class KokkosArray
{
public:
  KokkosArray() = default;
  explicit KokkosArray(const size_t N n);

  virtual ~KokkosArray() = default;

  void allocate(size_t N);
  size_t getNumberOfComponents();
  void zero();
  NumericVector<T> & operator *= (const T a);

  KokkosArray(KokkosArray&&) = default;
  KokkosArray(const KokkosArray&) = default;
  KokkosArray& operator=(KokkosArray&&) = default;


private:
  Kokkos::View<T> m_data;
};
